package com.pubinfo.passbook.common.model.dto.open;

import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * 报账发票表
 */
@Data
@NoArgsConstructor
@ApiModel(value = "WiteoffInvoiceInfo", description = "报账发票表")
public class WiteoffInvoiceInfo implements Serializable {
  
  /**
   * 供应商编码
   */
  @ApiModelProperty(value = "供应商编码 关联供应商数据", hidden = true)
  private String supplierCode = "G000343924";
  
  /**
   * 供应商名称
   */
  @ApiModelProperty(value = "供应商名称 关联供应商数据", hidden = true)
  private String supplierName = "浙江省公路管理局";
  
  /**
   * 发票代码
   */
  @ApiModelProperty(value = "发票代码 财政票据对应 电子票据代码", hidden = true)
  private String invoiceCode;
  
  /**
   * 发票类型
   */
  @ApiModelProperty(value = "发票类型 票据类型 非必须 当集成业务涉及增值税时，必须。 选项：1-增值税专用发票，2-增值税普通发票，3-营业税发票，4-货物运输专用发票，5-机动车销售统一发票，6-海关进口增值税专用缴款书，8-普通收据，9无发票，10-国外发票（国外账单），11-代扣代缴税收通用缴款书，12-电子发票-普票，13-增值税专用发票（免税高新企业），14-通行费电子发票，15-通用发票目前这些选项中省系统只要提供“12-电子发票-普票”这一种票据类型，15-通用发票 19-财政电子票据。 必须  银行扣款挂账和往来转销默认9，发票挂账默认14")
  private String invoiceType;
  
  /**
   * 发票金额
   */
  @ApiModelProperty(value = "发票金额 财政票据对应 金额", hidden = true)
  private Double sum;
  
  /**
   * 发票号码
   */
  @ApiModelProperty(value = "发票号码 财政票据对应 电子票据号码", hidden = true)
  private String invoiceNo;
  
  /**
   * 开票日期
   */
  @ApiModelProperty(value = "开票日期 YYYY-MM-DD", hidden = true)
  private String invoiceDate;
  
  /**
   * 发票价款
   */
  @ApiModelProperty(value = "发票价款 财政票据对应 金额", hidden = true)
  private Double invoicePrice;
  
  /**
   * 发票税款
   */
  @ApiModelProperty(value = "发票税款 财政票据对应 0", hidden = true)
  private Double taxAmount;
  
  /**
   * 合计
   */
  @ApiModelProperty(value = "合计  发票价款加上发票税款 财政票据对应金额", hidden = true)
  private Double total;
  
  /**
   * 报账单id
   */
  @ApiModelProperty(hidden = true)
  private String witeoffInstanceId;
  
  @ApiModelProperty(value = "可报销金额", hidden = true)
  private String claimAmount;
  
  @TableField(exist = false)
  private static final long serialVersionUID = 1L;

//  /**
//   * @param supplier 供应商
//   * @param info     票据或者是发票信息
//   * @param type     类型 0 为发票，1为票据
//   */
//  @SneakyThrows
//  public WiteoffInvoiceInfo(TMdmSupplier supplier, InvoiceInfo info, Integer type, String claimAmount) {
//    if (supplier != null) {
//      this.supplierCode = supplier.getLifnr();
//      this.supplierName = supplier.getName1();
//    }
//    this.claimAmount = claimAmount;
//    this.invoiceNo = info.getFphm();
//    this.invoiceCode = info.getFpdm();
//    if (0 == type) {
//      this.invoiceDate = info.getKprq();
//      this.total = Double.valueOf(info.getJshj());
//      this.sum = Double.valueOf(info.getJe());
//      BigDecimal jshj = new BigDecimal(info.getJshj());
//      BigDecimal se = new BigDecimal(info.getSe());
//      this.invoicePrice = jshj.subtract(se).doubleValue();
//      this.taxAmount = Double.valueOf(info.getSe()); //先设置税款为税额
//    } else {
//      String kprq = info.getKprq();
//      if ("0".equals(kprq)) {
//        SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
//        SimpleDateFormat format2 = new SimpleDateFormat("yyyy-MM-dd");
//        Date date = format.parse(kprq);
//        this.invoiceDate = format2.format(date);
//      }
//      this.total = Double.valueOf(info.getSe());
//      this.sum = Double.valueOf(info.getSe());
//      this.invoicePrice = Double.valueOf(info.getSe());
//      this.taxAmount = Double.valueOf(0); //先设置税款为税额
//    }
//
//  }
//
}